package com.cmc.cloud.cmclink.doc.convert;

import com.cmc.cloud.cmclink.doc.api.document.req.so.CntrAndOdoBaseVO;
import com.cmc.cloud.cmclink.doc.entity.SpecialCargoOdoDO;
import com.cmc.cloud.cmclink.doc.vo.specialcargoodovo.SpecialCargoOdoBaseVO;
import com.cmc.cloud.cmclink.doc.vo.specialcargoodovo.SpecialCargoOdoCreateReqVO;
import com.cmc.cloud.cmclink.doc.vo.specialcargoodovo.SpecialCargoOdoRespVO;
import com.cmc.cloud.cmclink.doc.vo.specialcargoodovo.SpecialCargoOdoUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 特种货审批odo Convert
 *
 * @author 集运管理员
 */
@Mapper
public interface SpecialCargoOdoConvert {

    SpecialCargoOdoConvert INSTANCE = Mappers.getMapper(SpecialCargoOdoConvert.class);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return
     */
    SpecialCargoOdoDO convert(SpecialCargoOdoCreateReqVO bean);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return
     */
    SpecialCargoOdoDO convert(SpecialCargoOdoBaseVO bean);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return
     */
    SpecialCargoOdoDO convertApi(com.cmc.cloud.cmclink.doc.api.document.req.so.SpecialCargoOdoBaseVO bean);


    /**
     * 属性转换 convert
     *
     * @param bean
     * @return
     */
    SpecialCargoOdoDO convert(SpecialCargoOdoUpdateReqVO bean);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return
     */
    SpecialCargoOdoRespVO convert(SpecialCargoOdoDO bean);

    /**
     * 属性转换 convert
     *
     * @param list
     * @return
     */
    List<SpecialCargoOdoRespVO> convertList(List<SpecialCargoOdoDO> list);

    /**
     * 属性转换 convert
     *
     * @param list
     * @return
     */
    List<com.cmc.cloud.cmclink.doc.vo.special.externalapivo.CntrAndOdoBaseVO> convertApiList(List<CntrAndOdoBaseVO> list);

    /**
     * 属性转换
     *
     * @param specialCargoOdoDo
     * @return
     */
    com.cmc.cloud.cmclink.doc.api.document.req.so.SpecialCargoOdoBaseVO convertSpecialCargoOdoBaseVO(SpecialCargoOdoDO specialCargoOdoDo);

}
